DateTimeFormatter
ক্লাসটি java.time
প্যাকেজের একটি গুরুত্বপূর্ণ অংশ যা তারিখ এবং সময়ের ফরম্যাটিং এবং পার্সিং এর জন্য ব্যবহৃত হয়। এটি ISO 8601 স্ট্যান্ডার্ডসহ অনেক ধরণের ফরম্যাট সমর্থন করে, এবং আপনি সহজেই স্ট্রিং থেকে তারিখ/সময় তৈরি করতে পারেন, অথবা তারিখ/সময়কে স্ট্রিং-এ রূপান্তর করতে পারেন।
DateTimeFormatter
ক্লাসের মূল ফিচারসমূহ:LocalDate
, LocalTime
, LocalDateTime
, ZonedDateTime
, Instant
সহ বিভিন্ন টাইম ক্লাসের জন্য ফরম্যাটিং এবং পার্সিং সমর্থন করে।DateTimeFormatter
ব্যবহার করে আপনি কাস্টম তারিখ এবং সময় ফরম্যাট তৈরি করতে পারেন, যেমন yyyy-MM-dd HH:mm:ss
বা dd/MM/yyyy
.DateTimeFormatter
ব্যবহার করে তারিখ এবং সময় ফরম্যাট করা:DateTimeFormatter
এর সাথে LocalDate
ফরম্যাটিং:LocalDate (যা শুধুমাত্র তারিখ ধারণ করে, সময় নয়) ফরম্যাট করার জন্য DateTimeFormatter
ব্যবহার করা যায়।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterExample {
public static void main(String[] args) {
// Create a LocalDate instance
LocalDate date = LocalDate.now();
System.out.println("Original Date: " + date);
// Create a DateTimeFormatter with a custom pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
// Format the LocalDate using the DateTimeFormatter
String formattedDate = date.format(formatter);
System.out.println("Formatted Date: " + formattedDate);
}
}
Original Date: 2024-12-23
Formatted Date: 23/12/2024
DateTimeFormatter.ofPattern("dd/MM/yyyy")
: এই প্যাটার্নটি দিন/মাস/বছর ফরম্যাটে তারিখ প্রিন্ট করবে।date.format(formatter)
: এই মেথডটি LocalDate
অবজেক্টটিকে নির্দিষ্ট ফরম্যাটে স্ট্রিংয়ে রূপান্তরিত করে।DateTimeFormatter
এর সাথে LocalTime
ফরম্যাটিং:এখানে LocalTime
(যা সময়ের মান ধারণ করে) ফরম্যাট করার উদাহরণ দেখানো হয়েছে।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class TimeFormattingExample {
public static void main(String[] args) {
// Create a LocalTime instance
LocalTime time = LocalTime.now();
System.out.println("Original Time: " + time);
// Create a DateTimeFormatter with a custom pattern for time
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm a");
// Format the LocalTime using the DateTimeFormatter
String formattedTime = time.format(formatter);
System.out.println("Formatted Time: " + formattedTime);
}
}
Original Time: 14:35:20.345
Formatted Time: 02:35 PM
hh:mm a
: এই প্যাটার্নটি ঘণ্টা:মিনিট AM/PM ফরম্যাটে সময় প্রিন্ট করবে।time.format(formatter)
: LocalTime
অবজেক্টটি নির্দিষ্ট ফরম্যাটে স্ট্রিংয়ে রূপান্তরিত করে।DateTimeFormatter
এর সাথে LocalDateTime
ফরম্যাটিং:LocalDateTime একটি তারিখ এবং সময়ের সমন্বয়, এবং এর ফরম্যাটিংও DateTimeFormatter
দ্বারা করা যেতে পারে।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterLocalDateTimeExample {
public static void main(String[] args) {
// Create a LocalDateTime instance
LocalDateTime dateTime = LocalDateTime.now();
System.out.println("Original DateTime: " + dateTime);
// Create a DateTimeFormatter with a custom pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy HH:mm:ss");
// Format the LocalDateTime using the DateTimeFormatter
String formattedDateTime = dateTime.format(formatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
Original DateTime: 2024-12-23T14:35:20.345
Formatted DateTime: 23 December 2024 14:35:20
dd MMMM yyyy HH:mm:ss
: এখানে, dd
(দিন), MMMM
(মাসের নাম), yyyy
(বছর), HH:mm:ss
(ঘণ্টা:মিনিট:সেকেন্ড) ফরম্যাটে তারিখ এবং সময় প্রদর্শিত হয়েছে।dateTime.format(formatter)
: LocalDateTime
অবজেক্টটি এই নির্দিষ্ট ফরম্যাটে স্ট্রিংয়ে রূপান্তরিত করেছে।DateTimeFormatter
এর মাধ্যমে ZonedDateTime
ফরম্যাটিং:ZonedDateTime ব্যবহার করে বিশ্বের বিভিন্ন সময় অঞ্চল অনুযায়ী সময় এবং তারিখের মান পাওয়া এবং ফরম্যাটিং করা যায়।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class ZonedDateTimeFormatterExample {
public static void main(String[] args) {
// Create a ZonedDateTime instance
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println("Original ZonedDateTime: " + zonedDateTime);
// Create a DateTimeFormatter with a custom pattern for ZonedDateTime
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss z");
// Format the ZonedDateTime using the DateTimeFormatter
String formattedZonedDateTime = zonedDateTime.format(formatter);
System.out.println("Formatted ZonedDateTime: " + formattedZonedDateTime);
}
}
Original ZonedDateTime: 2024-12-23T14:35:20.345+05:30[Asia/Kolkata]
Formatted ZonedDateTime: 23/12/2024 14:35:20 IST
dd/MM/yyyy HH:mm:ss z
: এখানে z
দ্বারা সময়ের অঞ্চল (যেমন: IST, GMT) নির্দিষ্ট করা হয়েছে। এটি ZonedDateTime-কে ফরম্যাট করে দিন/মাস/বছর, ঘণ্টা:মিনিট:সেকেন্ড এবং সময় অঞ্চল হিসাবে দেখাচ্ছে।z
: সময় অঞ্চলের নাম (যেমন Asia/Kolkata
, GMT
, UTC
ইত্যাদি) প্রদান করে।2024-12-23
(ফরম্যাট: yyyy-MM-dd
)14:35:20.345
(ফরম্যাট: HH:mm:ss.SSS
)2024-12-23T14:35:20.345
(ফরম্যাট: yyyy-MM-dd'T'HH:mm:ss.SSS
)2024-12-23T14:35:20.345+05:30[Asia/Kolkata]
(ফরম্যাট: yyyy-MM-dd'T'HH:mm:ss.SSSXXX[ZoneId]
)DateTimeFormatter
ক্লাস Java 8 এর একটি অত্যন্ত শক্তিশালী টুল, যা Date and Time API এর মাধ্যমে তারিখ ও সময়ের ফরম্যাটিং এবং পার্সিং সহজতর করে তোলে। আপনি LocalDate, LocalTime, LocalDateTime, ZonedDateTime ইত্যাদি টাইম ক্লাসের জন্য কাস্টম ফরম্যাট তৈরি করতে পারেন এবং প্রয়োজনে সেগুলো স্ট্রিং-এ রূপান্তর করতে পারেন। DateTimeFormatter
এর সাহায্যে আপনি সময় অঞ্চলের নাম, 24-ঘণ্টার ফরম্যাট, 12-ঘণ্টার AM/PM ফরম্যাটসহ বিভিন্ন ফরম্যাটের মধ্যে তারিখ এবং সময়ের মান পেতে পারেন।
DateTimeFormatter
ক্লাসটি java.time.format
প্যাকেজের একটি অংশ যা Java 8 থেকে শুরু হয়েছে। এটি Date এবং Time এর জন্য একটি ফরম্যাটিং এবং পার্সিং টুল সরবরাহ করে, যা তারিখ এবং সময়কে নির্দিষ্ট ফরম্যাটে রূপান্তর (format) বা পাঠ (parse) করতে ব্যবহৃত হয়।
DateTimeFormatter
কী?DateTimeFormatter
হল একটি ক্লাস যা ব্যবহারকারীদের LocalDate
, LocalTime
, LocalDateTime
, ZonedDateTime
ইত্যাদি তারিখ এবং সময় ক্লাসগুলোকে নির্দিষ্ট ফরম্যাটে রূপান্তর করতে সহায়তা করে। এর মাধ্যমে আপনি সহজেই তারিখ এবং সময়ের মানকে String এ রূপান্তর করতে পারেন অথবা String থেকে DateTime অবজেক্টে রূপান্তর করতে পারেন।
DateTimeFormatter.ISO_LOCAL_DATE
, DateTimeFormatter.ISO_LOCAL_TIME
, DateTimeFormatter.ISO_LOCAL_DATE_TIME
ইত্যাদি পূর্বনির্ধারিত ফরম্যাট ব্যবহার করা যায়।yyyy-MM-dd HH:mm:ss
অথবা dd/MM/yyyy
.import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterExample {
public static void main(String[] args) {
// বর্তমান তারিখ এবং সময়
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime);
// Custom DateTime Formatter
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = currentDateTime.format(formatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
Current DateTime: 2024-12-23T15:45:30.123
Formatted DateTime: 2024-12-23 15:45:30
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
: এটি একটি কাস্টম ফরম্যাটার তৈরি করে, যা তারিখ এবং সময়কে yyyy-MM-dd HH:mm:ss
ফরম্যাটে রূপান্তর করবে।format()
মেথডটি LocalDateTime
অবজেক্টটিকে একটি String ফরম্যাটে রূপান্তর করে।এখন, ধরুন আপনি একটি তারিখ এবং সময়ের স্ট্রিং পাবেন এবং সেই স্ট্রিংটি একটি DateTime অবজেক্টে রূপান্তর করতে চান।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateTimeParsingExample {
public static void main(String[] args) {
// String format date
String dateTimeString = "2024-12-23 15:45:30";
// Custom DateTime Formatter for parsing
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// Parse the string into LocalDateTime
LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
System.out.println("Parsed DateTime: " + parsedDateTime);
}
}
Parsed DateTime: 2024-12-23T15:45:30
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
: একইভাবে এখানে একটি কাস্টম ফরম্যাটার তৈরি করা হয়েছে।parse()
মেথডটি স্ট্রিংটি একটি LocalDateTime
অবজেক্টে রূপান্তরিত করে।Java-তে কিছু standard formatters রয়েছে যেগুলো ISO 8601 স্ট্যান্ডার্ড অনুসরণ করে এবং সহজেই ব্যবহৃত হতে পারে।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class StandardDateTimeFormatter {
public static void main(String[] args) {
// Get the current date and time
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println("Current ZonedDateTime: " + zonedDateTime);
// Use ISO standard formatter
DateTimeFormatter isoFormatter = DateTimeFormatter.ISO_ZONED_DATE_TIME;
String formattedDateTime = zonedDateTime.format(isoFormatter);
System.out.println("Formatted ZonedDateTime (ISO): " + formattedDateTime);
}
}
Current ZonedDateTime: 2024-12-23T15:45:30.123+05:30[Asia/Kolkata]
Formatted ZonedDateTime (ISO): 2024-12-23T15:45:30.123+05:30[Asia/Kolkata]
DateTimeFormatter.ISO_ZONED_DATE_TIME
: এটি ISO স্ট্যান্ডার্ড অনুযায়ী ZonedDateTime
ফরম্যাট করে।import java.time.*;
import java.time.format.DateTimeFormatter;
public class CustomDateTimeFormatter {
public static void main(String[] args) {
// বর্তমান তারিখ এবং সময়
LocalDateTime currentDateTime = LocalDateTime.now();
// কাস্টম ফরম্যাট ব্যবহার
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
String formattedDateTime = currentDateTime.format(formatter);
// আউটপুট
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
Formatted DateTime: 23-12-2024 15:45:30
DateTimeFormatter
একটি শক্তিশালী ক্লাস যা Java 8 থেকে তারিখ এবং সময়ের ফরম্যাটিং এবং পার্সিংয়ের জন্য ব্যবহৃত হয়। আপনি কাস্টম এবং স্ট্যান্ডার্ড ফরম্যাটে তারিখ এবং সময়ের মান রূপান্তর করতে পারেন। এটি ব্যবহারে আপনি তারিখ এবং সময়ের মানকে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর করতে পারেন এবং স্ট্রিং থেকে তারিখ বা সময়ও পুনরুদ্ধার করতে পারেন, যা Java Time API কে আরও শক্তিশালী এবং কার্যকরী করে তোলে।
java.time
প্যাকেজটি Java 8 এ যোগ করা হয়েছে এবং এটি তারিখ, সময় এবং সম্পর্কিত কাজগুলির জন্য একটি শক্তিশালী API সরবরাহ করে। এর মধ্যে Instant
ক্লাস এবং Predefined ও Custom Date-Time Formats এর ব্যবহার খুবই গুরুত্বপূর্ণ। চলুন একে একে আলোচনা করি।
Instant
ক্লাসটি UTC (Coordinated Universal Time) এর একটি নির্দিষ্ট মুহূর্তকে প্রতিনিধিত্ব করে। এটি epoch time (1970-01-01T00:00:00Z) থেকে সেকেন্ড এবং ন্যানোসেকেন্ডের হিসেবে সময় মাপতে ব্যবহৃত হয়।
Instant
ব্যবহার করা হয় যখন আপনার টাইমস্ট্যাম্প বা সঠিক সময় পয়েন্ট প্রয়োজন হয়।
Instant.now()
: এটি বর্তমান Instant
ফেরত দেয়, অর্থাৎ বর্তমান UTC সময়।Instant.ofEpochSecond(long epochSecond)
: এটি একটি নির্দিষ্ট epoch সেকেন্ড থেকে Instant
তৈরি করে।Instant.ofEpochMilli(long epochMilli)
: এটি মিলিসেকেন্ডে একটি নির্দিষ্ট epoch সময় থেকে Instant
তৈরি করে।toEpochMilli()
: এটি Instant
কে মিলিসেকেন্ডের মধ্যে epoch time হিসেবে রিটার্ন করে।import java.time.Instant;
public class InstantExample {
public static void main(String[] args) {
// Get the current instant (UTC time)
Instant currentInstant = Instant.now();
System.out.println("Current Instant: " + currentInstant);
// Convert an epoch second to Instant
Instant instantFromEpoch = Instant.ofEpochSecond(1620830325);
System.out.println("Instant from Epoch Second: " + instantFromEpoch);
// Convert an epoch millisecond to Instant
Instant instantFromEpochMilli = Instant.ofEpochMilli(1620830325000L);
System.out.println("Instant from Epoch Millisecond: " + instantFromEpochMilli);
// Convert Instant to epoch milliseconds
long epochMilli = currentInstant.toEpochMilli();
System.out.println("Epoch Milliseconds: " + epochMilli);
}
}
Current Instant: 2024-12-23T10:30:45.123Z
Instant from Epoch Second: 2021-05-12T12:45:25Z
Instant from Epoch Millisecond: 2021-05-12T12:45:25Z
Epoch Milliseconds: 1634316745123
Instant.now()
: এটি বর্তমান সময় Instant
(UTC) ফেরত দেয়।Instant.ofEpochSecond(long epochSecond)
: এটি নির্দিষ্ট epoch সেকেন্ড থেকে Instant
তৈরি করে।Instant.ofEpochMilli(long epochMilli)
: এটি মিলিসেকেন্ডে নির্দিষ্ট epoch সময় থেকে Instant
তৈরি করে।toEpochMilli()
: এটি Instant
কে মিলিসেকেন্ডে epoch টাইমে রূপান্তরিত করে।java.time.format.DateTimeFormatter
ক্লাসটি তারিখ এবং সময়ের মান প্রদর্শন এবং পার্স করার জন্য ব্যবহৃত হয়। এটি Predefined এবং Custom Formats সাপোর্ট করে।
Java-তে কিছু predefined formats রয়েছে যা ISO স্ট্যান্ডার্ড অনুসরণ করে।
কাস্টম ফরম্যাট তৈরি করতে আপনি DateTimeFormatter.ofPattern("pattern")
ব্যবহার করতে পারেন, যেখানে আপনি pattern দিয়ে নিজের ইচ্ছেমতো ফরম্যাট সাজাতে পারেন।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class PredefinedFormatExample {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
// ISO Predefined Formats
System.out.println("ISO_LOCAL_DATE: " + date.format(DateTimeFormatter.ISO_LOCAL_DATE));
System.out.println("ISO_LOCAL_TIME: " + time.format(DateTimeFormatter.ISO_LOCAL_TIME));
System.out.println("ISO_LOCAL_DATE_TIME: " + dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
}
}
ISO_LOCAL_DATE: 2024-12-23
ISO_LOCAL_TIME: 14:30:00
ISO_LOCAL_DATE_TIME: 2024-12-23T14:30:00
import java.time.*;
import java.time.format.DateTimeFormatter;
public class CustomFormatExample {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
// Custom DateTime format
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("dd MMMM yyyy HH:mm:ss");
String formattedDateTime = dateTime.format(customFormatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
Formatted DateTime: 23 December 2024 14:30:00
DateTimeFormatter.ISO_LOCAL_DATE
অথবা অন্যান্য predefined ফরম্যাট ব্যবহার করে সহজেই ISO স্ট্যান্ডার্ড অনুসরণ করা ফরম্যাট পেতে পারেন।DateTimeFormatter.ofPattern("pattern")
ব্যবহার করে নিজের কাস্টম ফরম্যাট তৈরি করতে পারেন। এখানে "dd MMMM yyyy HH:mm:ss"
ফরম্যাটে দিন, মাস, বছর, ঘণ্টা, মিনিট এবং সেকেন্ড প্রদর্শন করা হয়েছে।d
: দিন (1-31)M
: মাস (1-12)y
: বছরH
: ঘণ্টা (0-23)m
: মিনিট (0-59)s
: সেকেন্ড (0-59)a
: AM/PMz
: সময় অঞ্চলISO_LOCAL_DATE
, ISO_LOCAL_TIME
এবং ISO_LOCAL_DATE_TIME
ব্যবহার করে আপনি সহজে ISO স্ট্যান্ডার্ড অনুযায়ী তারিখ ও সময় ফরম্যাট করতে পারেন।এটি Java 8+ তে তারিখ, সময় এবং টাইমস্ট্যাম্পের কাজ করার জন্য একটি অত্যন্ত শক্তিশালী এবং কার্যকরী API।
java.time
প্যাকেজটি Java 8 থেকে পরিচিত এবং এটি তারিখ, সময় এবং সময় অঞ্চলের সাথে সম্পর্কিত কাজ সহজভাবে করার জন্য আধুনিক API প্রদান করে। এর মধ্যে LocalDate
, LocalTime
, এবং ZonedDateTime
ক্লাসগুলি বেশ গুরুত্বপূর্ণ, কারণ এগুলি আপনার কাজের সময় এবং তারিখ সম্পর্কিত বিভিন্ন কাজ করতে সাহায্য করে। এই ক্লাসগুলোকে আপনি ফরম্যাটিং এবং পার্সিং করতে পারেন যেভাবে আপনি চান, যাতে ব্যবহারকারীর জন্য সহজ এবং মানব-পঠনযোগ্য ফরম্যাট তৈরি করা যায়।
Java তে ফরম্যাটিং করার জন্য DateTimeFormatter
ক্লাসটি ব্যবহৃত হয়। এই ক্লাসটি আপনার তারিখ এবং সময়ের অবজেক্টকে স্ট্রিং এ রূপান্তরিত (format) এবং স্ট্রিং থেকে তারিখ বা সময় অবজেক্টে রূপান্তরিত (parse) করতে সাহায্য করে।
LocalDate
শুধু তারিখ (দিন, মাস, বছর) ধারণ করে এবং এটি সময় সম্পর্কিত কোনো তথ্য ধারণ করে না।
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class LocalDateFormattingExample {
public static void main(String[] args) {
// Create a LocalDate object
LocalDate date = LocalDate.now(); // Current date
// Define a custom date format
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
// Format the date to a string
String formattedDate = date.format(formatter);
System.out.println("Formatted LocalDate: " + formattedDate); // Example: 23/12/2024
}
}
DateTimeFormatter.ofPattern("dd/MM/yyyy")
: এখানে "dd/MM/yyyy"
হল কাস্টম ফরম্যাট, যেখানে dd
দিন, MM
মাস, এবং yyyy
বছর নির্দেশ করে।date.format(formatter)
: LocalDate
অবজেক্টটিকে ফরম্যাট করে স্ট্রিং রূপে রূপান্তরিত করা হচ্ছে।Formatted LocalDate: 23/12/2024
LocalTime
ক্লাসটি সময় (ঘণ্টা, মিনিট, সেকেন্ড, ন্যানোসেকেন্ড) ধারণ করে, তবে এটি তারিখ বা সময় অঞ্চল সম্পর্কিত কোনো তথ্য ধারণ করে না।
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class LocalTimeFormattingExample {
public static void main(String[] args) {
// Create a LocalTime object
LocalTime time = LocalTime.now(); // Current time
// Define a custom time format
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
// Format the time to a string
String formattedTime = time.format(formatter);
System.out.println("Formatted LocalTime: " + formattedTime); // Example: 14:35:20
}
}
DateTimeFormatter.ofPattern("HH:mm:ss")
: "HH:mm:ss"
কাস্টম ফরম্যাট যেখানে HH
ঘণ্টা (২৪ ঘণ্টা ফরম্যাটে), mm
মিনিট, এবং ss
সেকেন্ড।time.format(formatter)
: LocalTime
অবজেক্টটিকে স্ট্রিং রূপে রূপান্তরিত করা হচ্ছে।Formatted LocalTime: 14:35:20
ZonedDateTime
ক্লাসটি তারিখ, সময় এবং সময় অঞ্চল সম্পর্কিত তথ্য ধারণ করে। এটি নির্দিষ্ট সময় অঞ্চলে বর্তমান সময়ের স্ট্রিং তৈরি করতে ব্যবহৃত হয়।
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.ZoneId;
public class ZonedDateTimeFormattingExample {
public static void main(String[] args) {
// Create a ZonedDateTime object for a specific time zone
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("Asia/Kolkata"));
// Define a custom date-time format
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");
// Format the ZonedDateTime to a string
String formattedDateTime = zonedDateTime.format(formatter);
System.out.println("Formatted ZonedDateTime: " + formattedDateTime); // Example: 2024-12-23 14:35:20 IST
}
}
ZoneId.of("Asia/Kolkata")
: এটি Asia/Kolkata টাইম জোনের জন্য বর্তমান সময় সেট করে।DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z")
: এখানে "yyyy-MM-dd HH:mm:ss z"
কাস্টম ফরম্যাটে ফরম্যাটিং করা হচ্ছে, যেখানে z
সময় অঞ্চল প্রতিনিধিত্ব করে।Formatted ZonedDateTime: 2024-12-23 14:35:20 IST
এখন আপনি যদি একটি স্ট্রিং থেকে ZonedDateTime তৈরি করতে চান এবং সেটা অন্য ফরম্যাটে রূপান্তর করতে চান, তাহলে আপনি DateTimeFormatter.parse()
এবং ZonedDateTime.format()
ব্যবহার করতে পারেন।
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.ZoneId;
public class ZonedDateTimeParseExample {
public static void main(String[] args) {
// Define a date-time string with a specific format
String dateTimeString = "2024-12-23 14:35:20 IST";
// Define the formatter with the same pattern as the string
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");
// Parse the string to ZonedDateTime
ZonedDateTime parsedDateTime = ZonedDateTime.parse(dateTimeString, formatter);
System.out.println("Parsed ZonedDateTime: " + parsedDateTime);
// Convert parsed ZonedDateTime to a different format
DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss z");
String formattedDateTime = parsedDateTime.format(newFormatter);
System.out.println("Formatted ZonedDateTime: " + formattedDateTime);
}
}
Parsed ZonedDateTime: 2024-12-23T14:35:20+05:30[Asia/Kolkata]
Formatted ZonedDateTime: 23/12/2024 14:35:20 IST
LocalDate
, LocalTime
, এবং ZonedDateTime
ক্লাসগুলো Java 8 এর একটি শক্তিশালী অংশ যা সময় এবং তারিখ সম্পর্কিত কার্যক্রমের জন্য ব্যবহৃত হয়।DateTimeFormatter
ব্যবহার করে আপনি সহজেই ফরম্যাটিং এবং পার্সিং করতে পারেন।ZonedDateTime
এর মাধ্যমে সময় অঞ্চল সম্পর্কিত তারিখ এবং সময়কে ভালোভাবে পরিচালনা করা যায় এবং এটি ISO 8601 ফরম্যাট অনুসরণ করে।DateTimeFormatter
একটি ক্লাস যা java.time
প্যাকেজে অন্তর্ভুক্ত এবং এটি তারিখ এবং সময়ের তথ্য ফরম্যাট করার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি LocalDateTime
, LocalDate
, LocalTime
, ZonedDateTime
ইত্যাদি তারিখ ও সময় অবজেক্টগুলোকে একটি নির্দিষ্ট ফরম্যাটে রূপান্তর করতে পারেন এবং ফরম্যাটকৃত স্ট্রিং পার্স (parse) করতে পারেন।
DateTimeFormatter
একটি খুবই শক্তিশালী টুল যা আপনাকে ISO স্ট্যান্ডার্ড ছাড়াও আপনার নিজের প্রয়োজন অনুযায়ী কাস্টম তারিখ এবং সময় ফরম্যাট তৈরি করতে সহায়তা করে।
DateTimeFormatter
দিয়ে তারিখ ও সময় ফরম্যাট করা (Formatting Date and Time):format()
মেথড ব্যবহার করে আপনি একটি LocalDateTime
অবজেক্টকে একটি নির্দিষ্ট ফরম্যাটে কনভার্ট করতে পারেন।DateTimeFormatter
দিয়ে তারিখ ও সময় স্ট্রিং পার্স করা (Parsing Date and Time):parse()
মেথড ব্যবহার করে একটি ফরম্যাট করা স্ট্রিংকে একটি LocalDateTime
বা অন্য কোনো java.time
অবজেক্টে রূপান্তর করা যায়।import java.time.*;
import java.time.format.*;
public class DateTimeFormatterExample {
public static void main(String[] args) {
// Create a LocalDateTime object
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30, 0); // 2024-12-23T14:30:00
// Define a DateTimeFormatter
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
// Format the LocalDateTime object
String formattedDateTime = dateTime.format(formatter);
// Print the formatted date and time
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
Formatted DateTime: 23-12-2024 14:30:00
ব্যাখ্যা:
DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
: এটি একটি কাস্টম ফরম্যাট তৈরি করে। এখানে, dd
দিন, MM
মাস, yyyy
বছর, HH
ঘণ্টা, mm
মিনিট এবং ss
সেকেন্ডকে ফরম্যাট করে।dateTime.format(formatter)
: LocalDateTime
অবজেক্টকে নির্দিষ্ট ফরম্যাটে রূপান্তর করা হয়েছে।DateTimeFormatter
ব্যবহার করে আপনি একটি ফরম্যাট করা স্ট্রিংকে একটি LocalDateTime
, LocalDate
, বা LocalTime
অবজেক্টে রূপান্তর করতে পারেন।
import java.time.*;
import java.time.format.*;
public class DateTimeParsingExample {
public static void main(String[] args) {
// Define a DateTimeFormatter with a pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
// Parse a string into a LocalDateTime object
String dateTimeString = "23-12-2024 14:30:00";
LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
// Print the parsed LocalDateTime object
System.out.println("Parsed LocalDateTime: " + parsedDateTime);
}
}
Parsed LocalDateTime: 2024-12-23T14:30
ব্যাখ্যা:
DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
: এটি স্ট্রিংয়ের ফরম্যাট অনুযায়ী DateTimeFormatter
তৈরি করে।LocalDateTime.parse(dateTimeString, formatter)
: এটি dateTimeString
স্ট্রিংকে LocalDateTime
অবজেক্টে রূপান্তর করে।ISO-8601 ফরম্যাট জাভাতে ডিফল্ট ফরম্যাট হিসেবে ব্যবহৃত হয়। আপনি DateTimeFormatter.ISO_LOCAL_DATE_TIME
এবং অন্যান্য ISO ফরম্যাট ব্যবহার করে তারিখ ও সময় ফরম্যাট করতে পারেন।
import java.time.*;
import java.time.format.*;
public class IsoDateTimeFormatterExample {
public static void main(String[] args) {
// Create a LocalDateTime object
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30, 0);
// Format the LocalDateTime object using ISO format
String isoFormattedDateTime = dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
// Print the ISO formatted date and time
System.out.println("ISO Formatted DateTime: " + isoFormattedDateTime);
// Parse a string into LocalDateTime using ISO format
String isoDateTimeString = "2024-12-23T14:30:00";
LocalDateTime parsedDateTime = LocalDateTime.parse(isoDateTimeString, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
// Print the parsed LocalDateTime object
System.out.println("Parsed DateTime: " + parsedDateTime);
}
}
ISO Formatted DateTime: 2024-12-23T14:30:00
Parsed DateTime: 2024-12-23T14:30
ব্যাখ্যা:
DateTimeFormatter.ISO_LOCAL_DATE_TIME
: এটি একটি প্রি-ডিফাইনড ফরম্যাট, যা ISO 8601 ফরম্যাটে LocalDateTime
ফরম্যাট করে।LocalDateTime.parse()
: এটি স্ট্রিংটিকে একটি LocalDateTime
অবজেক্টে রূপান্তর করে।ZonedDateTime
ক্লাস ব্যবহার করে আপনি টাইমজোন সহ তারিখ এবং সময় ফরম্যাট করতে পারেন। এখানে DateTimeFormatter
এর মাধ্যমে ZonedDateTime
ফরম্যাট এবং পার্সিং দেখানো হচ্ছে।
import java.time.*;
import java.time.format.*;
public class ZonedDateTimeFormatterExample {
public static void main(String[] args) {
// Create a ZonedDateTime object
ZonedDateTime zonedDateTime = ZonedDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneId.of("America/New_York"));
// Format the ZonedDateTime object
String zonedDateTimeString = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
System.out.println("Formatted ZonedDateTime: " + zonedDateTimeString);
// Parse a ZonedDateTime string
String zonedDateTimeInput = "2024-12-23T14:30:00-05:00[America/New_York]";
ZonedDateTime parsedZonedDateTime = ZonedDateTime.parse(zonedDateTimeInput, DateTimeFormatter.ISO_ZONED_DATE_TIME);
System.out.println("Parsed ZonedDateTime: " + parsedZonedDateTime);
}
}
Formatted ZonedDateTime: 2024-12-23T14:30:00-05:00[America/New_York]
Parsed ZonedDateTime: 2024-12-23T14:30:00-05:00[America/New_York]
ব্যাখ্যা:
DateTimeFormatter.ISO_ZONED_DATE_TIME
: এটি ISO 8601 স্ট্যান্ডার্ডে টাইমজোন সহ ZonedDateTime
ফরম্যাট করে।ZonedDateTime.parse()
: এটি টাইমজোনসহ স্ট্রিংটিকে ZonedDateTime
অবজেক্টে রূপান্তর করে।DateTimeFormatter
ক্লাসটি Java 8-এ Date এবং Time এর ফরম্যাটিং এবং পার্সিং কাজকে সহজ এবং শক্তিশালী করে তোলে।DateTimeFormatter.ofPattern()
এর মাধ্যমে আপনি আপনার প্রয়োজন অনুযায়ী কাস্টম ফরম্যাট তৈরি করতে পারেন, এবং DateTimeFormatter.ISO_*
এর মাধ্যমে স্ট্যান্ডার্ড ফরম্যাটে কাজ করতে পারেন।Read more